Scheduling events for multiple invitees

ABSTRACT

Scheduling events with multiple invitees includes: identifying a plurality of invitees for an event in a calendar system having at least one processor; searching an availability associated with each of the invitees to determine a number of periods of availability in the calendar system, at least some of the invitees being available during each period of availability; creating a separate instance of the event in the calendar system for each identified period of availability; and for each invitee available during at least one of the periods of availability, assigning the invitee to one said instance of the event for which that invitee is available with the calendar system.

BACKGROUND

Aspects of the present specification relate to computerized calendarsystems. In particular, the present specification relates to schedulingevents for multiple invitees using a computerized calendar system.

Electronic calendar applications allow users to track scheduled eventsthrough the storage of individual calendar entries for separatelyscheduled events. A calendar entry may contain information about anassociated scheduled event, including the date, time, location, invitedparticipants of the event, and/or a description of the event. Calendarapplications and scheduled event data are often accessible through anetwork connection to a server, which enhances their utility for usersdesiring to access calendar information from different locations.

Most electronic calendar applications allow a user to electronicallynotify invitees of a scheduled event. For example, a user may create acalendar entry for a meeting and indicate a number of invitees for thescheduled event. Each of the indicated invitees may then receive anelectronic invitation to the scheduled event, which the invitee may thenelectronically accept or decline.

BRIEF SUMMARY

A method of scheduling events with multiple invitees includes:identifying a plurality of invitees for an event in a calendar systemhaving at least one processor; searching an availability associated witheach of the invitees to determine a number of periods of availability inthe calendar system, at least some of the invitees being availableduring each period of availability; creating a separate instance of theevent in the calendar system for each identified period of availability;and for each invitee available during at least one of the periods ofavailability, assigning the invitee to one instance of the event forwhich that invitee is available with the calendar system.

A method of scheduling events with multiple invitees includes:identifying a plurality of invitees for an event in a calendar systemcomprising at least one processor; determining in the calendar systemwhether a period exists during which each of the invitees is available.If it is determined that a period exists during which each of theinvitees is available, the event is scheduled in the calendar system forthe period during which each of the invitees is available. If it isdetermined that no period exists during which each of the invitees isavailable, the calendar system determines a number of periods ofavailability in the calendar system, at least some of the invitees beingavailable during each period of availability; creates a separateinstance of the event in the calendar system for each identified periodof availability with the calendar system; and for each invitee availableduring at least one of the periods of availability, assigns the inviteeto one instance of the event for which that invitee is available withthe calendar system.

A computerized calendar system includes a processor communicativelycoupled to a memory, the memory having executable code stored thereon.The executable code, when executed by the processor, causes theprocessor to: identify a plurality of invitees for an event; search anavailability associated with each of the invitees to determine a numberof periods of availability, at least some of the invitees beingavailable during each period of availability; create a separate instanceof the event for each identified period of availability; and for eachinvitee available during at least one of the periods of availability,assign the invitee to one instance of the event for which that inviteeis available.

A computerized calendar system includes a processor communicativelycoupled to a memory, the memory having executable code stored thereon.The executable code, when executed by the processor, causes theprocessor to identify a plurality of invitees for an event in a calendarsystem comprising at least one processor and determine in the calendarsystem whether a period exists during which each of the invitees isavailable. If such a period exists during which each of the invitees isavailable, the executable code causes the processor to schedule theevent in the calendar system for the period during which each of theinvitees is available. If no period exists during which each of theinvitees is available, the executable code causes the processor to:determine a number of periods of availability in the calendar system, atleast one of the invitees being available during each period ofavailability; create a separate instance of the event in the calendarsystem for each identified period of availability with the calendarsystem; and for each invitee available during at least one of theperiods of availability, assign the invitee to one instance of the eventfor which that invitee is available with the calendar system.

A computer program product for scheduling events with multiple inviteesincludes a tangible computer readable storage medium having computerreadable program code embodied therewith. The computer readable programcode includes: computer readable program code configured to identify aplurality of invitees for an event; computer readable program codeconfigured to search an availability associated with each of theinvitees to determine a number of periods of availability, at least someof the invitees being available during each period of availability;computer readable program code configured to create a separate instanceof the event for each identified period of availability; and computerreadable program code configured to, for each invitee available duringat least one of the periods of availability, assign the invitee to onesaid instance of the event for which that invitee is available.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The accompanying drawings illustrate various embodiments of theprinciples described herein and are a part of the specification. Theillustrated embodiments are merely examples and do not limit the scopeof the claims.

FIG. 1 is a diagram of an illustrative graphic user interface displayfor creating a scheduled event in a computerized calendar system,according to one example of principles described herein.

FIG. 2 is a diagram of an illustrative graphic user interface displayfor creating a scheduled event in a computerized calendar system,according to one example of principles described herein.

FIG. 3 is a diagram of an illustrative graphic user interface displayfor creating a scheduled event in a computerized calendar system,according to one example of principles described herein.

FIG. 4 is a diagram of an illustrative graphic user interface displayfor creating a scheduled event in a computerized calendar system,according to one example of principles described herein.

FIG. 5 is a diagram of an illustrative graphic user interface displayfor creating a scheduled event in a computerized calendar system,according to one example of principles described herein.

FIG. 6 is a flow diagram of an illustrative method of scheduling eventswith multiple invitees, according to one example of principles describedherein.

FIG. 7 is a flow diagram of an illustrative method of scheduling eventswith multiple invitees, according to one example of principles describedherein.

FIG. 8 is a flow diagram of an illustrative method of scheduling eventswith multiple invitees, according to one example of principles describedherein.

FIG. 9 is a block diagram of an illustrative computing device that mayimplement a computerized calendar system for scheduling events withmultiple invitees, according to one example of principles describedherein.

Throughout the drawings, identical reference numbers designate similar,but not necessarily identical, elements.

DETAILED DESCRIPTION

The present specification discloses methods, systems, and computerprogram products of scheduling events with large groups of invitees. Asdescribed above, most electronic calendar applications allow a usercreating a scheduled event to electronically notify invitees of thescheduled event. In fact, some calendar applications allow the usercreating the scheduled event to view the availability of the invitees.In this way, the user creating the scheduled event may be able to selecta day and time for the event during which all of the invitees areavailable.

While this approach may be useful in smaller events having few invitees,it can be problematic when creating a scheduled event with a large groupof invitees. For example, it may be difficult for a human to keep trackof the availability of a significant number of invitees. Moreover, withlarger groups of invitees, the likelihood of finding a period of timeduring which each of the invitees is available for the scheduled eventis typically quite low.

In light of the aforementioned issues, the methods, systems, andcomputer program products disclosed in the present specification split ascheduled event with a large number of invitees into multiple instancesof the event scheduled during automatically detected periods of commoninvitee availability. Each invitee can then be assigned to an instanceof the event for which that invitee will be available.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations of the presentinvention may be written in an object oriented programming language suchas Java, Smalltalk, C++ or the like. However, the computer program codefor carrying out operations of the present invention may also be writtenin conventional procedural programming languages, such as the “C”programming language or similar programming languages. The program codemay execute entirely on the user's computer, partly on the user'scomputer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

The present invention is described below with reference to flowchartillustrations and/or block diagrams of methods, apparatus (systems) andcomputer program products according to embodiments of the invention. Itwill be understood that each block of the flowchart illustrations and/orblock diagrams, and combinations of blocks in the flowchartillustrations and/or block diagrams, can be implemented by computerprogram instructions. These computer program instructions may beprovided to a processor of a general purpose computer, special purposecomputer, or other programmable data processing apparatus to produce amachine, such that the instructions, which execute via the processor ofthe computer or other programmable data processing apparatus, createmeans for implementing the functions/acts specified in the flowchartand/or block diagram block or blocks.

These computer program instructions may also be stored in acomputer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including instruction meanswhich implement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions which execute on the computer or other programmableapparatus provide steps for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

FIG. 1 is a diagram of an illustrative graphical user interface window(100) of a computerized calendar system. The graphical user interfacewindow (100) may be displayed to a user of the computerized calendarsystem through, for example, a monitor or other display device. Usingthe graphical user interface window (100) of FIG. 1, the user may createa new scheduled event in the computerized calendar system. As shown, thegraphical user interface window (100) includes an area (105) for theuser to select the type of event, an area (110) for the user to input asubject of the event, an area (115) for the user to input or modify atentative time for the event, an area (120) for the user to indicateinvitees selected for the event, and an area (125) for the user toindicate a location of the event. Additionally, the graphical userinterface window (100) includes a button (130) to save the event in thecomputerized calendar system and send invitations to indicatedattendees, a button (135) to save the event as a draft, and a button(140) allowing the user to check his or her own schedule stored by thecomputerized calendar system.

As shown in FIG. 1, the user may specify the invitees for the createdscheduled event in the graphical user interface window (100) byinputting the name of a predefined group (“GroupOf100Invitees”). Thepredefined group may include an email address, a system nickname, and/oruser account information for each of invitee associated with thepredefined group. Additionally or alternatively, the user may specifythe invitees for the created scheduled event in the window (100)individually using an email address, a system nickname, and/or otheruser account information.

Additionally, the graphical user interface window (100) includes a “findavailable time and split meeting” button (145). This button (145) maytrigger the computerized calendar system to perform the function ofsearching an availability associated with each of the invitees specifiedfor the scheduled event to determine a number of periods ofavailability. The periods of availability may be periods of time duringwhich a significant number of the invitees are determined to beavailable. The computerized calendar system may be configured to find aspecified number of periods of availability (i.e., the n periods ofavailability that maximize the number of invitees that are availableduring at least one of the periods of availability) or, alternatively,to find smallest number of periods of availability such that each of theinvitees is available during at least one of the periods ofavailability.

Once the periods of availability have been determined from theavailability information associated with the invitees, the computerizedcalendar system may split the scheduled event to create a separateinstance of the event scheduled for each of the periods of availability.For each invitee available during at least one of the periods ofavailability, the computerized calendar system may assign that inviteeto one of the created instances of the event for which that invitee isavailable. In this way, the availability of invitees to attend thescheduled event may be maximized. For example, if each invitee isavailable during at least one period of availability, each invitee maybe assigned to an instance of the scheduled event for which that inviteeis available.

Each of the instances of the event may be associated with the otherinstances of the event in the computerized calendar system. In this way,if a meeting chairperson takes one or more actions (e.g., changeslocation, changes description, changes time, confirms, cancels, etc.)with respect to the event generally, each of the instances of the eventmay be updated automatically to reflect that change.

Referring now to FIG. 2, the computerized calendar system may beconfigured to automatically detect that the number of invitees for ascheduled event is greater than a specified threshold and prompt theuser to invoke the event splitting functionality described with respectto FIG. 1. This automatic detection of the number of invitees andprompting of the user to invoke the splitting functionality may beperformed in addition to, or as an alternative to the invocation of thesame functionality using the button (145, FIG. 1) shown in FIG. 1. FIG.2 shows the graphical user interface window (100) of FIG. 1 with a popupmessage (205) prompting the user to invoke the event splittingfunctionality of the computerized calendar system following adetermination that the number of invitees specified for the newscheduled event is larger than a specified threshold.

FIG. 3 is a diagram of an illustrative graphical user interface window(300) that may be displayed by the computerized calendar system to theuser to allow the user to configure options for the event splittingfunctionality described in relation to FIGS. 1-2. This graphical userinterface window (300) may be appended to the graphical user interfacewindow (100) of FIG. 1. Additionally or alternatively, the graphicaluser interface window (300) of FIG. 3 may be displayed to the userseparately from the graphical user interface window (100) of FIG. 1.

The user may have the option to select a period of time during whicheach of the periods of availability found by the computerized calendarsystem must fall. For example, as shown in FIG. 3, the graphical userinterface window (300) may include an area (305) for the user to specifya beginning date and an ending date for the periods of availability. Insome examples, the graphical user interface window (300) may also allowthe user to specify a time for the start date and the end date.

The user may also be able to choose between creating a maximum totalnumber of instances of the event and maximizing the total collectiveattendance of the invitees at the instances of the scheduled event. Forexample, as shown in FIG. 3, the graphical user interface window (300)may include an area (310) allowing the user to make this choice usingradio buttons. This option may be useful given the differentdemographics of invitees that may be desired for different types ofevents scheduled through the computerized calendar system. For example,in an event with a group of 100 invitees with relatively busy schedules,20 separately scheduled instances of the event may be required to ensurethat each invitee is available for at least one of the scheduledinstances. If managing 20 separately scheduled instances of the event isbeyond the capacity of the user, the user may prefer to impose a cap onthe total number of separately scheduled instances of the event bysetting a maximum number of periods of availability to be found.

The computerized calendar system may also provide the user with theopportunity to cap the number of invitees to be assigned to eachseparately scheduled instance of the event corresponding to a period ofavailability. As shown in FIG. 3, the graphical user interface window(300) may include an area (315) allowing the user to choose whether toimpose a cap on the number of invitees assigned to each instance of theevent.

Once the parameters associated with the aforementioned areas (305, 310,315) of the graphical user interface window (300) have been entered bythe user, the user may select a “begin search” button (320) to instructthe computerized calendar system to proceed with determining the periodsof availability, creating a separate instance of the event for eachperiod of availability, and assigning individual invitees to eachinstance of the event based on availability of the invitees.

FIG. 4 is a diagram of an illustrative window (400) of the graphicaluser interface of the computerized calendar system that shows theresults of determining periods of availability, creating a separateinstance of the event for each period of availability, and assigninginvitees to the instances of the event based on availability. The window(400) displays each of the periods of availability (405) found by thecomputerized calendar system. With each period of availability, a list(410-1 to 410-4) of invitees assigned to the instance of the scheduledevent created for that period of availability is also displayed.

Some of the invitees may be available during more than one of theidentified periods of availability (405). In the example of FIG. 4,these invitees are displayed in bold text with an asterisk. Thecomputerized calendar system may allow the user to change an assignmentof an invitee from one instance of the event to another instance of theevent for which that invitee is available.

The graphical user interface window (400) may include navigation buttons(415, 420) that allow the user to proceed to sending electronicinvitations to the invitees or return to a previous window. In certainexamples, the graphical user interface window (400) may be part of orappended to another graphical user interface window, such as thegraphical user interface window (100) of FIG. 1, which renders thenavigation buttons (415, 420) redundant and unnecessary. In such cases,the navigation buttons (415, 420) may not be included in the graphicaluser interface window (400).

FIG. 5 shows the graphical user interface window (400) of FIG. 4,wherein the user is given the option of changing the assignment of oneof the invitees. By selecting an invitee, the graphical user interfacewindow (400) may provide a display (505) of each instance of the eventduring which that particular invitee is available and allow the user toselect a new assignment for the invitee. Additionally or alternatively,the graphical user interface window (400) may permit the user to dragand drop an invitee to reassign that invitee to another instance of theevent for which that invitee is available.

Once the user has seen the division of the event and the assignment ofinvitees in the graphical user interface window (400), the user maychoose to proceed with sending electronic invitations to the invitees.In sending the electronic invitations, the user may have the option tosend out a separate electronic invitation for each separately scheduledinstance of the event or a single electronic invitation to each inviteewhich allows the invitees to select an instance of the scheduled eventto attend.

FIG. 6 is a flowchart diagram of an illustrative method (600) which maybe performed by a computerized calendar system to schedule events withmultiple invitees. At block 602, a plurality of invitees is identifiedin the system. At block 604, the calendar system searches anavailability associated with each of the invitees to identify a numberof periods of availability, where at least one of the invitees isavailable during each period of availability.

In certain examples, availability information may not be explicitlyassociated with a particular invitee, or the invitee may have chosen tohide or obscure its availability information from the computerizedcalendar system. In such examples, the computerized calendar system maytreat that invitee as being available during normal business hours orfollow some other default availability template.

At block 606, a separate instance of the event is created in thecalendar system for each identified period of availability. At block608, each invitee that is available during at least one of the periodsof availability is assigned to one instance of the event for which thatinvitee is available.

FIG. 7 is a block diagram of a more specific example of an illustrativemethod (700) of scheduling events with multiple invitees performed by acomputerized calendar system. At block 702, a user is permitted toselect a plurality of invitees. At block 704, the user is permitted toselect a maximum number (n) of scheduled instances of the event. Atblock 706, the system identifies the availability associated with eachof the invitees. Proceeding to block 708, the system determines the ntime slots that maximize the total number of invitees available duringat least one of the time slots. These n time slots are the periods ofavailability determined by the system.

At block 710, a separately scheduled instance of the event is createdfor each of the n time slots. At block 712, each of the invitees that isavailable during at least one of the n time slots is assigned to one ofthe instances of the event corresponding to a time slot for which thatinvitee is available. In certain examples, a user may manually changeone or more of these assignments. Finally, at block 714, each inviteeassigned to one of the instances of the event is electronically invitedto that instance of the event by the computerized calendar system. Incertain examples, a response (e.g., accept, decline, propose new time)may be received in the computerized calendar system from one or more ofthe invitees and forwarded to the user creating or managing the event.

FIG. 8 is a flowchart diagram of another example of a method (800) ofscheduling events with multiple invitees using a computerized calendarsystem. At block 802, a plurality of invitees is identified for anevent. A determination is made at block 804 as to whether a period oftime exists during which each of the invitees is available. If such aperiod of time is found (block 804, YES), the event is scheduled duringthat period at block 806. Otherwise (block 804, NO), the availability ofeach invitee is searched at block 808 to identify a number of periods ofavailability such that at least one of the invitees is available duringeach period of availability. At block 810, a separate instance of theevent is created for each identified period of availability, and eachinvitee that is available during at least one of the period ofavailability is assigned to an instance of the event for which thatinvitee is available at block 812.

FIG. 9 is a block diagram of an illustrative computing device (900) thatmay be used to execute a computerized calendar program as a calendarserver, a calendar client device, and/or a standalone calendar device toimplement a computerized calendar system.

The hardware platform (905) of the computing device (900) may include atleast one processor (920) that executes code stored in the main memory(925). In certain embodiments, the processor (920) may be a multi-coreprocessor having multiple independent central processing units (CPUs),with each CPU having its own L1 cache and all CPUs sharing a common businterface and L2 cache. Alternatively, the processor (920) may be asingle-core processor.

The at least one processor (920) may be communicatively coupled to themain memory (925) of the hardware platform and a host peripheral controlinterface bridge (PCI) (930) through a main bus (935). The main memory(925) may include dynamic non-volatile memory, such as random accessmemory (RAM). The main memory (925) may store executable code and datathat is obtainable by the processor (920) through the main bus (935).

The host PCI bridge (930) may act as an interface between the main bus(935) and a peripheral bus (940) used to communicate with peripheraldevice interfaces (945). Among these peripheral devices (947) thatinterface to the processor (920) may be a network interface controller,external human interface devices (e.g., monitor, keyboard, mouse, touchscreen, speaker, microphone), other external devices (e.g., externalstorage, dongles, specialized tools), serial buses (e.g., UniversalSerial Bus (USB)), and the like. A local storage interface (950) forcommunicating with local storage devices (955) may also communicate withthe peripheral bus (940).

The present configuration of the hardware platform (905) is merelyillustrative of one type of hardware platform (905) that may be used inconnection with the principles described in the present specification.The hardware platform (905) shown in the lower half of the diagram ofFIG. 9 is configured to implement the elements of applicationfunctionality shown in the upper half of the diagram of FIG. 9. Thus, asshown in FIG. 9, an operating system (960) program is executed directlyby the hardware platform (905). The operating system (960) may interactwith and manage the performance of hardware resources in the hardwareplatform (905), including the processor(s) (920), the main memory (925),and the peripheral devices (947, 955). Thus, the operating system (960)controls the execution of computer programs by the processor(s) (920).Among these computer programs may include a calendar application (970)which causes the processor(s) (920) to implement a computerized calendarsystem, such as the computerized calendar system described herein. Aspart of the execution of the calendar application (970), a userinterface such as the user interfaces described in relation to FIGS. 1-5may be displayed by one of the peripheral devices (947).

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention. Theembodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

Having thus described the invention of the present application in detailand by reference to embodiments thereof, it will be apparent thatmodifications and variations are possible without departing from thescope of the invention defined in the appended claims.

What is claimed is:
 1. A method of scheduling events with multipleinvitees, said method comprising: identifying a plurality of inviteesfor an event in a calendar system comprising at least one processor;determining in the calendar system whether an available meeting periodexists during which each of the invitees is available; in response todetermining that said period exists during which each of the invitees isavailable, scheduling the event in the calendar system for the availablemeeting period during which each of the invitees is available; inresponse to determining that no single available meeting period existsduring which each of the invitees is available: display a button forsplitting a meeting into multiple meetings; in response to activation ofthe button, determining a number of periods of availability in thecalendar system, at least one of the invitees being available duringeach period of availability; creating a separate instance of the eventin the calendar system for each identified period of availability suchthat a plurality of instances of the same event are scheduled to occurwith the calendar system; and for each invitee, assigning the invitee toone said instance of the event for which that invitee is available, suchthat a different group of invitees is assigned to each of the multipleinstances of the event based on availability of individual invitees. 2.The method of claim 1, in which the number of periods of availability inthe calendar system is set by a user.
 3. The method of claim 1, in whichthe number of periods of availability in the calendar system is aminimum number of periods of availability such that each of the inviteesis available during at least one of the periods of availability.
 4. Themethod of claim 1, in which the number of periods of availability fallwithin a period of time set by a user.
 5. The method of claim 1, furthercomprising determining the number of periods of availability in thecalendar system automatically in response to the amount of inviteesbeing greater than a specified threshold.
 6. The method of claim 1,further comprising displaying the invitees assigned to each instance ofthe event to a user.
 7. The method of claim 1, further comprising, for asaid invitee available during more than one of the periods ofavailability, displaying each of the periods of availability for whichthe invitee is available to a user.
 8. The method of claim 1, furthercomprising allowing the user to change an assignment of a said inviteefrom one instance of the event to another instance of the event.
 9. Themethod of claim 1, further comprising sending an electronic invitationto each of the invitees assigned to one of the instances of the event.